﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Castle.ActiveRecord;


namespace ServiceGerenciador.Model
{
    [Serializable]
    [ActiveRecord("produtos")]
    public class Prod : ActiveRecordBase<Prod>
    {
        //private IList<Forne> forne = new ArrayList();

        public Prod()
        {

        }

        [PrimaryKey]
        public int idProduto { get; set; }

        [Property]
        public string produto { get; set; }

        [Property]
        public Decimal precoCusto { get; set; }

        [Property]
        public Decimal precoVenda { get; set; }

        [Property]
        public Decimal desconto { get; set; }

        [Property]
        public int estoqueMinimo { get; set; }

        [Property]
        public int estoque { get; set; }

        [Property]
        public string observacao { get; set; }

        public static Prod[] Pesquisa(string termo)
        {
            var produto = FindAll();
            return produto.Where((p) => p.produto.ToUpper().Contains(termo.ToUpper())).ToArray();            
            //return FindAllByProperty("produtos", termo);
        }

        public static Prod[] Pesquisa(string property, string term)
        {
            var produto = FindAll();
            return produto.Where((p) => p.produto.ToUpper().Contains(term.ToUpper())).ToArray();
        }

        //[HasAndBelongsToMany(typeof(fornecedores),
        // Table = "fornecedoresProdutos", ColumnKey = "Id", ColumnRef = "idPessoa")]
        //public IList<Forne> Forne
        //{
        //    get { return forne; }
        //    set { forne = value; }
        //}

        [HasAndBelongsToMany(Table = "fornecedores", ColumnKey = "Id", ColumnRef = "idPessoa", Lazy = true, Cascade = ManyRelationCascadeEnum.AllDeleteOrphan)]
        public IList<Forne> Forne { get; set; } 
        //[HasAndBelongsToMany(Table = "fornecedores", Cascade = ManyRelationCascadeEnum.AllDeleteOrphan, ColumnKey = "Id", ColumnRef = "idPessoa", Lazy = true)]
        //public IList<Forne> Forne { get; set; } 
    }
}